#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
#include <sys/types.h>

int main()
{
  //创建一个子进程，然后让他能够执行另一个可执行程序
  printf("I' m parent process, my pid is: %d\n", getpid());
  pid_t id = fork();
  if(id == 0)
  {
    printf("excel before, pid: %d, ppid:%d\n", getpid(), getppid());
    //l:list
    //v:数组，类型char* const argv[],指向的位置不能发生变化
    //e:env环境变量，可以支持修改环境变量操作，通过putenv()函数可以增加环境变量，传入environ可以获取父进程的环境变量
    //p:path，表示文件会优先从环境变量中查找
    execl("./otherExe", "otherExe", "-hhhhh", NULL);
    printf("替换失败，子进程终止，pid:%d, ppid:%d\n", getpid(), getppid());
    exit(1);
  }
  int status = 0;
  pid_t ret = waitpid(-1, &status, 0);
  if(ret > 0) printf("wait success!\n");
  return 0;
}
